// 检测目标元素是否出现是视图中
import { useIntersectionObserver } from "@vueuse/core";

// 定义懒加载插件
export const lazyPlugin = {
  install(app) {
    // 定义全局指令
    app.directive("img-lazy", {
      mounted(el, binding) {
        // el为当前指令绑定的元素
        // binding：binding.value为使用指令时等于号后面绑定的表达式的值，即图片url
        const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
          if (isIntersecting) {
            // 当进入视图中加载图片
            el.src = binding.value;
            stop();
          }
        });
      },
    });
  },
};
